package com.bosssoft.common.util;


import org.mindrot.jbcrypt.BCrypt;

public class SecurityUtil {

    /**
     * 使用 bcrypt 算法对密码进行加密。
     *
     * bcrypt 是一种哈希算法，专门用于密码加密。它结合了盐和迭代机制，
     * 使得生成的哈希值更加安全。
     *
     * @param password 明文密码
     * @return 加密后的密码哈希值
     */
    public static String hashPassword(String password) {
        // 使用 BCrypt.gensalt() 生成一个随机盐，并使用该盐对密码进行哈希处理
        return BCrypt.hashpw(password, BCrypt.gensalt());
    }

    /**
     * 验证输入的明文密码是否与存储的哈希密码匹配。
     *
     * 该方法会将输入的明文密码与存储的哈希值进行比较，以验证密码是否正确。
     *
     * @param rawPassword 明文密码
     * @param hashedPassword 存储的哈希密码
     * @return 如果密码匹配返回 true，否则返回 false
     */
    public static boolean checkPassword(String rawPassword, String hashedPassword) {
        // 使用 BCrypt.checkpw 方法将明文密码与哈希密码进行比较
        return BCrypt.checkpw(rawPassword, hashedPassword);
    }
}


